/*
          _____                    _____                    _____                    _____                    _____                   _______         
         /\    \                  /\    \                  /\    \                  /\    \                  /\    \                 /::\    \        
        /::\    \                /::\____\                /::\____\                /::\    \                /::\    \               /::::\    \       
       /::::\    \              /:::/    /               /::::|   |                \:::\    \              /::::\    \             /::::::\    \      
      /::::::\    \            /:::/    /               /:::::|   |                 \:::\    \            /::::::\    \           /::::::::\    \     
     /:::/\:::\    \          /:::/    /               /::::::|   |                  \:::\    \          /:::/\:::\    \         /:::/~~\:::\    \    
    /:::/__\:::\    \        /:::/    /               /:::/|::|   |                   \:::\    \        /:::/__\:::\    \       /:::/    \:::\    \   
   /::::\   \:::\    \      /:::/    /               /:::/ |::|   |                   /::::\    \      /::::\   \:::\    \     /:::/    / \:::\    \  
  /::::::\   \:::\    \    /:::/    /      _____    /:::/  |::|___|______    ____    /::::::\    \    /::::::\   \:::\    \   /:::/____/   \:::\____\ 
 /:::/\:::\   \:::\    \  /:::/____/      /\    \  /:::/   |::::::::\    \  /\   \  /:::/\:::\    \  /:::/\:::\   \:::\    \ |:::|    |     |:::|    |
/:::/  \:::\   \:::\____\|:::|    /      /::\____\/:::/    |:::::::::\____\/::\   \/:::/  \:::\____\/:::/  \:::\   \:::\____\|:::|____|     |:::|    |
\::/    \:::\  /:::/    /|:::|____\     /:::/    /\::/    / ~~~~~/:::/    /\:::\  /:::/    \::/    /\::/    \:::\  /:::/    / \:::\    \   /:::/    / 
 \/____/ \:::\/:::/    /  \:::\    \   /:::/    /  \/____/      /:::/    /  \:::\/:::/    / \/____/  \/____/ \:::\/:::/    /   \:::\    \ /:::/    /  
          \::::::/    /    \:::\    \ /:::/    /               /:::/    /    \::::::/    /                    \::::::/    /     \:::\    /:::/    /   
           \::::/    /      \:::\    /:::/    /               /:::/    /      \::::/____/                      \::::/    /       \:::\__/:::/    /    
           /:::/    /        \:::\__/:::/    /               /:::/    /        \:::\    \                      /:::/    /         \::::::::/    /     
          /:::/    /          \::::::::/    /               /:::/    /          \:::\    \                    /:::/    /           \::::::/    /      
         /:::/    /            \::::::/    /               /:::/    /            \:::\    \                  /:::/    /             \::::/    /       
        /:::/    /              \::::/    /               /:::/    /              \:::\____\                /:::/    /               \::/____/        
        \::/    /                \::/____/                \::/    /                \::/    /                \::/    /                 ~~              
         \/____/                  ~~                       \/____/                  \/____/                  \/____/                                  
                                                                                                                                                      
*/

import { App } from './src/app.js';
import { default as Commands } from './src/commands.js';
import { moduleLoader } from './src/utils.js';

import path from 'path';
import { fileURLToPath, pathToFileURL } from 'url';

moduleLoader([pathToFileURL(path.resolve(path.dirname(fileURLToPath(import.meta.url)), './src/ui.js')).toString()])
    .then(([UI]) => {
        new App({
            UIUtils: UI,
            config: {}
        }).registerProgram({
            name: 'aumiao-js',
            description: 'Aumiao-JS',
            version: '0.2.0'
        }).registerCommands(
            Commands
        ).start();
    })


